Utilisation de recettes pour définir des valeurs
Vous utilisez des recettes pour modifier ou lire simultanément les valeurs d'un ensemble spécifique de variables (définition de recette) sur le contrôleur.
Vous définissez les paramètres de base des recettes, tels que l'emplacement et le format, dans le Gestionnaire de recettes objet. Insérez n'importe quel nombre de définitions de recettes sous cet objet.
Vous pouvez enregistrer les recettes dans des fichiers ou écrire directement à partir de fichiers sur le contrôleur.
Les recettes peuvent être appelées via le CODESYS l'interface de développement, l'élément de visualisation ou le programme d'application.
Utilisation de recettes sur des appareils distants
Si des variables de source de données sont impliquées et qu'un échange de source de données est configuré, les valeurs de variable des recettes sont automatiquement transférées vers/depuis un autre contrôleur. La lecture et l'écriture se font de manière synchrone. Cela signifie que toutes les variables configurées dans une définition de recette sont mises à jour en même temps.
Après avoir lu ou écrit, vous pouvez utiliser l'appel g_RecipeManager.LastError
pour vérifier si le transfert a réussi ou non (g_RecipeManager.LastError = 0
).
Appel des commandes de recette dans le CODESYS interface utilisateur
L'interface de programmation de CODESYS vous propose des commandes de création de recettes ainsi que de lecture/écriture en mode connecté.
Appel de commandes de recette par programme ou dans une visualisation
Lors de l'exécution, la définition de recette et les commandes de recette peuvent être appelées dans le programme d'application. Pour ce faire, vous implémentez le processus d'écriture, de lecture ou de surveillance des définitions de recette dans votre code en utilisant les méthodes du RecipeManCommands
bloc fonction du RecipeManagement
bibliothèque.
Pour plus d'informations, consultez : RecipeManCommands (FB)
Dans la visualisation, l'appel des commandes de recette est implémenté en utilisant le configuration d'entrée (exécuter la commande) pour un élément de visualisation. Ce faisant, un utilisateur de visualisation peut contrôler l'exécution des commandes de recette.
Astuce
Pendant le processus d'initialisation, la gestion des recettes lit les valeurs des variables spécifiées dans la définition de la recette. Ce processus a lieu à la fin de la phase d'initialisation de l'application. À ce stade, toutes les valeurs initiales des variables d'application sont définies. Ceci est fait pour initialiser correctement les valeurs manquantes des fichiers de recette.
Fonctionnalité spéciale pour les nombres à virgule flottante
Pour les variables de type REAL
ou LREAL
, une distinction est faite selon que la valeur est exactement convertible ou non.
S'il est possible de convertir exactement la valeur, seule la valeur numérique est enregistrée dans le fichier de recette.
Si une conversion exacte n'est pas possible, une chaîne codée en hexadécimal est écrite dans le fichier de recette à côté de la valeur numérique. Cela devrait avoir pour effet qu'un nombre à virgule flottante non convertible renvoie également la même valeur.
Cette fonction peut être désactivée avec le RECIPE_GENERATE_SIMPLE_STRINGREAL
définition du compilateur.
Astuce
Dans les propriétés de l'objet de l'application parent sous Construire, vous pouvez entrer ceci RECIPE_GENERATE_SIMPLE_STRINGREAL
compilateur définir dans le Le compilateur définit option. Par conséquent, aucune chaîne codée en hexadécimal n'est stockée.
Pour plus d'informations, consultez : Boîte de dialogue : Propriétés : Générer
Créer une recette
Dans l'arborescence des appareils, sélectionnez le Application objet.
Cliquez sur Projet → Ajouter un objet → Gestionnaire de recettes.
Le gestionnaire de recettes est ajouté à l'arborescence des appareils.
Dans l'arborescence des appareils, cliquez sur le Gestionnaire de recettes objet.
Cliquez sur Projet → Ajouter un objet → Définition de recette.
Le définition de la recette est ajouté sous le gestionnaire de recettes.
Ouvrez l'éditeur de la définition de recette en double-cliquant sur l'objet.
Double-cliquez sur le champ vide ci-dessous Variable. Spécifiez le nom d'une variable pour laquelle définir une recette. Vous pouvez utiliser l'assistant de saisie (
bouton) pour cela.
Cliquez sur
et spécifiez un nom pour la nouvelle recette.Une colonne avec le nouveau nom de recette apparaît dans l'éditeur.
Saisissez la valeur de la variable pour cette recette dans ce champ.
Insérez des champs supplémentaires si nécessaire.
Sélectionnez une valeur de variable pour la recette et cliquez sur
. Sélectionnez un emplacement et un nom de fichier.La recette est enregistrée dans le format qui a été défini dans le gestionnaire de recettes.
Charger une recette à partir d'un fichier
Prérequis : un gestionnaire de recettes est disponible dans l'application. Dans une définition de recette, il y a un monenregistrement recette avec des valeurs variables. UN myRec.txt
Le fichier de recette se trouve sur le système de fichiers et contient les entrées de cette recette.
Exemple de fichier recette :
PLC_PRG.bVar:=0 PLC_PRG.iVar:=2 PLC_PRG.dwVar:=35232 PLC_PRG.stVar:='first' PLC_PRG.wstVar:='123443245'
Double-cliquez sur le Définition de recette dans l'arborescence des appareils pour ouvrir l'éditeur tabulaire pour la définition des recettes individuelles.
Vous voyez le
myRec
colonne avec les valeurs actuelles pour cette recette.Modifier le
myRec.txt
fichier dans un éditeur de texte externe et remplacez les valeurs des variables par d'autres valeurs que vous souhaitez charger dans la définition de la recette dans CODESYS. Enregistrez le fichier.Dans la définition de la recette, cliquez sur le monenregistrement colonne et dans le menu contextuel, cliquez sur Charger la recette.
Une invite de dialogue vous informe de la nécessité éventuelle d'effectuer une modification en ligne lors de la reconnexion. Une modification en ligne est nécessaire lorsque vous modifiez les valeurs actuelles des variables de recette en chargeant la recette.
Cliquez sur Oui pour fermer la boîte de dialogue et continuer. Sélectionnez le
myRec.txt
fichier à partir de l'explorateur de fichiers pour le chargement.Les valeurs de recette dans la définition de recette sont mises à jour en fonction des valeurs lues dans le fichier.
Astuce
Si vous souhaitez écraser uniquement des variables de recette individuelles avec de nouvelles valeurs, supprimez les valeurs des autres variables avant de les charger dans le fichier de recette. Les entrées sans définition de valeur ne sont pas lues et la mise à jour laisse donc ces variables inchangées sur le contrôleur et dans le projet.
Pour les valeurs du type de données REAL
/LREAL
, la valeur hexadécimale est également écrite dans le fichier de recette dans certains cas. Cela est nécessaire pour que la valeur exactement identique soit restaurée lors de la reconversion. Dans ce cas, vous modifiez la valeur décimale et supprimez la valeur hexadécimale.
Gestion des recettes sur le contrôleur ; utilisation de la mémoire
Lorsque vous effacez le Gestion des recettes dans l'automate option, le gestionnaire de recettes et les définitions de recettes n'utiliseront aucune mémoire sur l'automate.
Si vous sélectionnez cette option, un code est généré pour le gestionnaire de recettes et toutes les définitions de recettes, et ce code est stocké sur l'API. La taille de la mémoire utilisée dépend principalement du nombre de recettes et de leurs variables, ainsi que du type de données des variables. Le fait que les champs de la définition de recette soient remplis ou non a également un effet. L'utilisation de la mémoire des recettes ne peut pas être calculée. Elle doit être déterminée par expérimentation au moment où elle est nécessaire. Le tableau suivant ne fournit que quelques principes directeurs.
Taille du code (octets) | Taille des données (octets) | Total (octets) | |
---|---|---|---|
Une définition de recette avec 100 variables INT | 194406 | 79400 | 267352 |
Une définition de recette avec 200 variables INT | 238318 | 121284 | 459344 |
Une définition de recette avec 300 variables INT | 282230 | 163084 | 543856 |
Une définition de recette avec 100 variables BOOL | 192742 | 69884 | 343168 |
Une définition de recette avec 200 variables BOOL | 235446 | 101568 | 436872 |
Une définition de recette avec 300 variables BOOL | 278146 | 133284 | 510072 |
Une définition de recette avec 100 variables de chaîne | 203278 | 870084 | 1154000 |
Une définition de recette avec 200 variables de chaîne | 255570 | 1709784 | 2973296 |
Une définition de recette avec 300 variables de chaîne | 307886 | 2549484 | 2964112 |
Chargement des valeurs de recette depuis le contrôleur
Vous pouvez appliquer des valeurs de recette sur le contrôleur aux définitions de recette dans le projet, même si ces définitions ont été modifiées dans le projet.
Exigence : Le Gestion des recettes dans l'automate Cette option est sélectionnée dans le gestionnaire de recettes.
Créer une définition de recette
RecDef1
dans le projet, contenant les variablesPLC_PRG.ivar
etPLC_PRG.bvar
. Insérer une recette R1: la valeur pourPLC_PRG.ivar
:33
; la valeur pourPLC_PRG.bvar
:TRUE
.Connectez-vous au contrôleur et téléchargez l'application.
Le fichier recette
R1.RecDef1.txtrecipe
est enregistré dans le répertoire par défaut du contrôleur ($PlcLogic$).Déconnectez-vous et ajoutez une autre variable
PLC_PRG.dwvar
à la définition de la recette dans le projet.Modifier le fichier de définition de recette
R1.RecDef1.txtrecipe
sur l'appareil en modifiant la valeur dePLC_PRG.ivar
depuis33
pour34
.De plus, ajoutez une autre recette R2 sur l'appareil. Pour ce faire, copiez le
R1.RecDef1.txtrecipe
et renommez-le enR2.RecDef1.txtrecipe
. Modifiez ensuite ce fichier et modifiez les valeurs de la recette :PLC_PRG.ivar
:1
,PLC_PRG.bvar
:FALSE
.Maintenant deux recettes R1 et R2 sont disponibles sur l'appareil. Dans le projet, il n'y a que R1, et il contient également d'autres valeurs que R1 sur l'appareil.
Connectez-vous au contrôleur au moyen d'une modification en ligne.
Cliquez sur Charger les recettes depuis l'appareil depuis le menu contextuel.
Une invite de dialogue vous avertit que l'exécution de la commande lors de la prochaine connexion peut déclencher une modification en ligne et que les recettes du système d'exécution écraseront les recettes de la définition de recette actuelle.
Confirmez que vous voulez continuer.
Une invite de dialogue vous informe que la recette de
PLC_PRG.dwvar
chargé sur l'appareil ne peut pas produire de valeur du contrôleur.Confirmez que vous voulez continuer.
La valeur de
PLC_PRG.ivar
dans la recette R1 de la définition de recette dans le projet devient34
. La recette R2 avec les valeurs1
etFALSE
est également répertorié dans la définition de la recette maintenant.PLC_PRG.dwvar
reste dans la définition de la recette.